package com.emily.test.service;

import com.emily.test.model.TRole;

import java.util.List;
import java.util.Map;

public interface RoleService {
    //获取所有角色信息
    List<TRole> selectRole();
    //根据id 查询角色信息
    TRole selectRoleById(int id);
    //根据id 删除角色信息
    int deleteRoleById(int id);
    //添加新角色
    int insertRole(TRole tRole);
    //修改角色信息
    int updateRoleById(TRole tRole);

    /**
     * 根据公司ID查询所有角色信息列表
     * @param companyIds 公司ID集合，其中companyIds，值形式为:"1,2,3,4"
     * @return
     */
    List<Map<String, Object>> selectTRoleInfoListByCompanyId(List companyIds);

    /**
     * 根据角色id的集合更新角色的某些字段
     * @param tRoleList
     */
    int updateRoleByIds(List<TRole> tRoleList);

    /**
     * 根据相关条件查询符合条件的角色list
     * @param tRole
     * @return
     */
    List<TRole> selectRoleByCondition(TRole tRole);

    /**
     * 查询尚未配置资源的角色列表
     * @return
     */
    List<TRole> selectRoleListNoResource();

    /**
     * 根据用户ID查询所有角色信息列表
     * @param list 用户ID集合，值形式为:"1,2,3,4"
     * @return
     */
    List<Map<String, Object>> selectTRoleInfoListByUserId(List list);

    /**
     * 查询没有菜单的角色信息
     * @return
     */
    List<TRole> selectRoleListNoMenu();

    /**
     * 根据公司id获取没有资源的角色信息
     * @param companyId
     * @return
     */
    List<TRole> selectRoleListNoResourceInCompany(Integer companyId);
}
